package com.qf.exception;

import java.util.ArrayList;

/**
 * 演示 Error
 */
public class Demo03 {

    public static void main(String[] args) {
        int a = 10;
//        stackOverFlowTest();

        heapOverFlowTest();
        System.out.println("886");
    }


    /**
     * 如何爆堆
     * Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
     */
    private static void heapOverFlowTest() {
        int count = 1;
        ArrayList<Object> objects = new ArrayList<>();
        while (true) {
            System.out.println(count++);
            //1. 创建一个10M 大小的对象
            // 垃圾回收 ，把垃圾对象进行回收
            byte[] arr = new byte[10*1024*1024];
            objects.add(arr);
        }

    }


    /**
     * 爆栈
     * java.lang.StackOverflowError
     */
    private static void stackOverFlowTest() {
//        System.out.println("---");
        stackOverFlowTest();
    }
}
